5887ba
@@ -28,6 +28,7 @@
import org.jboss.as.controller.AbstractRemoveStepHandler;
 import org.jboss.as.controller.OperationContext;
 import org.jboss.as.controller.PathAddress;
 import org.jboss.dmr.ModelNode;
+import org.jboss.jca.common.api.metadata.ds.DataSource;
 import org.jboss.msc.service.ServiceController;
 import org.jboss.msc.service.ServiceName;
 import org.jboss.msc.service.ServiceRegistry;
@@ -50,11 +51,19 @@
public static final ConnectionPropertyRemove INSTANCE = new ConnectionPropertyRe
         final String jndiName = path.getElement(path.size() - 2).getValue();
         final String configPropertyName = PathAddress.pathAddress(address).getLastElement().getValue();
 
-        ServiceName serviceName = DataSourceConfigService.SERVICE_NAME_BASE.append(jndiName).append("connection-properties").append(configPropertyName);
+        final ServiceName dataSourceConfigServiceName = DataSourceConfigService.SERVICE_NAME_BASE
+                .append(jndiName);
+        final ServiceController<?> dataSourceConfigController = registry
+                .getService(dataSourceConfigServiceName);
+        if (dataSourceConfigController == null || !((DataSource) dataSourceConfigController.getValue()).isEnabled()) {
+            ServiceName propertySeerviceName = DataSourceConfigService.SERVICE_NAME_BASE.append(jndiName).append("connection-properties").append(configPropertyName);
 
-        final ServiceController<?> dataSourceConfigController = registry.getService(serviceName);
-        if (dataSourceConfigController != null) {
-            context.removeService(serviceName);
+            final ServiceController<?> propertyController = registry.getService(propertySeerviceName);
+            if (propertyController != null) {
+                context.removeService(propertySeerviceName);
+            }
+        } else {
+            context.reloadRequired();
         }
 
     }
